//Heitor Paceli
//Rafael Araujo
package Objects;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Library {
    
    private long id;
    private String libraryName;
    private List<Client> clientList = new ArrayList<Client>();
    
    public List<Client> getClientList() {
        return clientList;
    }

    public void setClientList(List<Client> clientList) {
        this.clientList = clientList;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getLibraryName() {
        return libraryName;
    }

    public void setLibraryName(String libraryName) {
        this.libraryName = libraryName;
    }
    
    public double verifyDebits(long clientID) {
        
        int index = -1;
        for (int i = 0; i < clientList.size(); i++) {
            if (clientList.get(i).getId() == clientID) {
                index = i;
                break;
            }
        }
        
        return  clientList.get(index).getDebit();
        
    }
    
    public void updateDebits(long clientID, double value) {
        
        int index = -1;
        for (int i = 0; i < clientList.size(); i++) {
            if (clientList.get(i).getId() == clientID) {
                index = i;
                break;
            }
        }
        
        clientList.get(index).setDebit(value);
        
    }
    
    public long createClient(){
        
        Scanner scan = new Scanner(System.in);
        
        Client client = new Client();
        
        String name = scan.nextLine();
        
        
//        getId(); Aqui, a gente pede ao servidor o último registro no hashMap dele,
//        quando for retornado, é só por + 1, pra ser o Id dele.
        client.setName(name);
        client.setPickedBooks(0);
        
        clientList.add(client);
        
        //Aqui o método de salvar no XML / TXT, o que for.
        long generatedID = 0;
        
        return generatedID; 
    }
    
    public boolean removeClient(long clientID) {
        
        boolean removed = false;
        int removeID = -1;
        
        for (int i = 0; i < clientList.size(); i++) {
            if (clientList.get(i).getId() == clientID) {
                removeID = i;
                break;
            }
        }
        
        if (removeID == -1) {
            removed = false;
        } else {
            clientList.remove(removeID);
            //Aqui, chama o método de remover no "banco";
            removed = true;
        }
        
        return removed;
    }
    
    public void pickBook(Client client) {
        
        if (client.getDebit() > 4.0) {
            //Não pode mais pegar livros.
        } else {
            client.setDebit(client.getDebit() + 1.0);
        }
        
    }
    
    public void returnBook(Client client) {
        
        if (client.getDebit() < 1.0) {
            //Não tem débito!
        } else {
            client.setDebit(client.getDebit() - 1.0);
        }
        
    }
    
}
